package com.ruoyi.system.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 合同对象 t_contract
 * 
 * @author ruoyi
 * @date 2020-04-17
 */
public class Contract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String contractNo;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String contractName;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private Integer projectType;

    /** 协议类型（横向/纵向） */
    @Excel(name = "协议类型", readConverterExp = "横=向/纵向")
    private Integer protocolType;

    /** 委托单位 */
    @Excel(name = "委托单位")
    private String agency;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String chargeMan;

    /** 承担部门 */
    @Excel(name = "承担部门")
    private Long chargeDept;

    /** 承担部门描述(冗余) */
    @Excel(name = "承担部门描述(冗余)")
    private String chargeDeptDesp;

    /** 单位id */
    @Excel(name = "单位id")
    private Long reportUnitId;

    /** 申报单位 */
    @Excel(name = "申报单位")
    private String reportUnit;

    /** 申报时间 */
    @Excel(name = "申报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 科室 */
    @Excel(name = "科室")
    private String department;

    /** 科室 */
    @Excel(name = "科室")
    private Long departmentId;

    /** 项目开始时间 */
    @Excel(name = "项目开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 项目结束时间 */
    @Excel(name = "项目结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 合同额 */
    @Excel(name = "合同额")
    private Double contractAmount;

    /** 摘要 */
    @Excel(name = "摘要")
    private String summary;

    /** 总经费 */
    @Excel(name = "总经费")
    private Double totalOutlay;

    /** 实到经费 */
    @Excel(name = "实到经费")
    private Double realOutlay;

    /** 是否有附件 */
    @Excel(name = "是否有附件")
    private Integer hasAppendix;

    /** 文档类型 */
    @Excel(name = "文档类型")
    private Integer docType;

    /** 审核状态   1未审核，2审核中，3审核通过 */
    @Excel(name = "审核状态   1未审核，2审核中，3审核通过")
    private Integer auditState;

    /** 创建时间 */
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtTime;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long creator;

    private String searchParam;

    public String getSearchParam() {
        return searchParam;
    }

    public void setSearchParam(String searchParam) {
        this.searchParam = searchParam;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }
    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }
    public void setProjectType(Integer projectType) 
    {
        this.projectType = projectType;
    }

    public Integer getProjectType() 
    {
        return projectType;
    }
    public void setProtocolType(Integer protocolType) 
    {
        this.protocolType = protocolType;
    }

    public Integer getProtocolType() 
    {
        return protocolType;
    }
    public void setAgency(String agency) 
    {
        this.agency = agency;
    }

    public String getAgency() 
    {
        return agency;
    }
    public void setChargeMan(String chargeMan) 
    {
        this.chargeMan = chargeMan;
    }

    public String getChargeMan() 
    {
        return chargeMan;
    }
    public void setChargeDept(Long chargeDept) 
    {
        this.chargeDept = chargeDept;
    }

    public Long getChargeDept() 
    {
        return chargeDept;
    }
    public void setChargeDeptDesp(String chargeDeptDesp) 
    {
        this.chargeDeptDesp = chargeDeptDesp;
    }

    public String getChargeDeptDesp() 
    {
        return chargeDeptDesp;
    }
    public void setReportUnitId(Long reportUnitId) 
    {
        this.reportUnitId = reportUnitId;
    }

    public Long getReportUnitId() 
    {
        return reportUnitId;
    }
    public void setReportUnit(String reportUnit) 
    {
        this.reportUnit = reportUnit;
    }

    public String getReportUnit() 
    {
        return reportUnit;
    }
    public void setReportTime(Date reportTime) 
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime() 
    {
        return reportTime;
    }
    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }
    public void setDepartmentId(Long departmentId) 
    {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() 
    {
        return departmentId;
    }
    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }
    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }
    public void setContractAmount(Double contractAmount) 
    {
        this.contractAmount = contractAmount;
    }

    public Double getContractAmount() 
    {
        return contractAmount;
    }
    public void setSummary(String summary) 
    {
        this.summary = summary;
    }

    public String getSummary() 
    {
        return summary;
    }
    public void setTotalOutlay(Double totalOutlay) 
    {
        this.totalOutlay = totalOutlay;
    }

    public Double getTotalOutlay() 
    {
        return totalOutlay;
    }
    public void setRealOutlay(Double realOutlay) 
    {
        this.realOutlay = realOutlay;
    }

    public Double getRealOutlay() 
    {
        return realOutlay;
    }
    public void setHasAppendix(Integer hasAppendix) 
    {
        this.hasAppendix = hasAppendix;
    }

    public Integer getHasAppendix() 
    {
        return hasAppendix;
    }
    public void setDocType(Integer docType) 
    {
        this.docType = docType;
    }

    public Integer getDocType() 
    {
        return docType;
    }
    public void setAuditState(Integer auditState) 
    {
        this.auditState = auditState;
    }

    public Integer getAuditState() 
    {
        return auditState;
    }
    public void setGmtTime(Date gmtTime) 
    {
        this.gmtTime = gmtTime;
    }

    public Date getGmtTime() 
    {
        return gmtTime;
    }
    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractNo", getContractNo())
            .append("contractName", getContractName())
            .append("projectType", getProjectType())
            .append("protocolType", getProtocolType())
            .append("agency", getAgency())
            .append("chargeMan", getChargeMan())
            .append("chargeDept", getChargeDept())
            .append("chargeDeptDesp", getChargeDeptDesp())
            .append("reportUnitId", getReportUnitId())
            .append("reportUnit", getReportUnit())
            .append("reportTime", getReportTime())
            .append("department", getDepartment())
            .append("departmentId", getDepartmentId())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("contractAmount", getContractAmount())
            .append("summary", getSummary())
            .append("remark", getRemark())
            .append("totalOutlay", getTotalOutlay())
            .append("realOutlay", getRealOutlay())
            .append("hasAppendix", getHasAppendix())
            .append("docType", getDocType())
            .append("auditState", getAuditState())
            .append("gmtTime", getGmtTime())
            .append("creator", getCreator())
            .toString();
    }
}
